Bitcoin Halving Process Visualization

How Bitcoin’s supply approaches 21 million through programmatic halving

Overview

Bitcoin’s 21 million coin cap is maintained through an elegant mathematical design that combines block rewards and halving. This visualization shows how the supply approaches its maximum through programmatic halving every 210,000 blocks (approximately 4 years).

Cumulative Bitcoin Supply Over Time

Note

Bitcoin’s block reward system creates new bitcoins approximately every 10 minutes, starting at 50 BTC per block in 2009. Every 210,000 blocks (roughly 4 years), this reward cuts in half—from 50 to 25, then 12.5, 6.25, 3.125, and so on—creating a predictable supply schedule. This halving process forms a geometric series that mathematically converges to approximately 21 million BTC, with the supply curve asymptotically approaching but never quite reaching the cap. By around 2140, when the block reward becomes smaller than Bitcoin’s smallest unit (1 satoshi), no new bitcoins will be created, and miners will rely entirely on transaction fees for compensation.

A satoshi is the smallest unit of Bitcoin, named after its pseudonymous creator Satoshi Nakamoto. One satoshi equals 0.00000001 BTC, meaning there are exactly 100 million satoshis in a single bitcoin. This tiny denomination allows for microtransactions and ensures Bitcoin remains divisible and practical even if its value increases dramatically, similar to how a dollar can be divided into 100 cents.

Remaining Bitcoin to be Mined

Y-axis log scale reveals the consistent exponential decay - the remaining supply halves with each halving event.

Block Reward Decay Over Halving

Note

Bitcoin miners receive a fixed number of newly created bitcoins (the “block reward”) for successfully mining each block, which occurs approximately every 10 minutes. This reward started at 50 BTC in 2009 and automatically halves every 210,000 blocks (roughly every 4 years), currently sitting at 3.125 BTC as of 2024. Through this systematic halving process, the total supply of Bitcoin will asymptotically approach but never exceed 21 million coins, with the final bitcoin expected to be mined around the year 2140. Y-axis log scale again reveals the consistent exponential decay.

Bitcoin Halving Schedule

Halving # Year Block Reward BTC Mined Cumulative Supply % of Cap
0 ~2009 50.00000000 10,500,000.000 10,500,000.000 50.000000000%
1 ~2013 25.00000000 5,250,000.000 15,750,000.000 75.000000000%
2 ~2017 12.50000000 2,625,000.000 18,375,000.000 87.500000000%
3 ~2021 6.25000000 1,312,500.000 19,687,500.000 93.750000000%
4 ~2025 3.12500000 656,250.000 20,343,750.000 96.875000000%
5 ~2029 1.56250000 328,125.000 20,671,875.000 98.437500000%
6 ~2033 0.78125000 164,062.500 20,835,937.500 99.218750000%
7 ~2037 0.39062500 82,031.250 20,917,968.750 99.609375000%
8 ~2041 0.19531250 41,015.625 20,958,984.375 99.804687500%
9 ~2045 0.09765625 20,507.812 20,979,492.188 99.902343750%
10 ~2049 0.04882812 10,253.906 20,989,746.094 99.951171875%
11 ~2053 0.02441406 5,126.953 20,994,873.047 99.975585938%
12 ~2057 0.01220703 2,563.477 20,997,436.523 99.987792969%
13 ~2061 0.00610352 1,281.738 20,998,718.262 99.993896484%
14 ~2065 0.00305176 640.869 20,999,359.131 99.996948242%
15 ~2069 0.00152588 320.435 20,999,679.565 99.998474121%
16 ~2073 0.00076294 160.217 20,999,839.783 99.999237061%
17 ~2077 0.00038147 80.109 20,999,919.891 99.999618530%
18 ~2081 0.00019073 40.054 20,999,959.946 99.999809265%
19 ~2085 0.00009537 20.027 20,999,979.973 99.999904633%
20 ~2089 0.00004768 10.014 20,999,989.986 99.999952316%
21 ~2093 0.00002384 5.007 20,999,994.993 99.999976158%
22 ~2097 0.00001192 2.503 20,999,997.497 99.999988079%
23 ~2101 0.00000596 1.252 20,999,998.748 99.999994040%
24 ~2105 0.00000298 0.626 20,999,999.374 99.999997020%
25 ~2109 0.00000149 0.313 20,999,999.687 99.999998510%
26 ~2113 0.00000075 0.156 20,999,999.844 99.999999255%
27 ~2117 0.00000037 0.078 20,999,999.922 99.999999627%
28 ~2121 0.00000019 0.039 20,999,999.961 99.999999814%
29 ~2125 0.00000009 0.020 20,999,999.980 99.999999907%
30 ~2129 0.00000005 0.010 20,999,999.990 99.999999953%
31 ~2133 0.00000002 0.005 20,999,999.995 99.999999977%
32 ~2137 0.00000001 0.002 20,999,999.998 99.999999988%
Note
  • Current halving (2024-2028) is halving #4
  • By halving #10 (around 2049), 99.9% of all Bitcoin will be mined
  • By 2101 (Halving #23), only 1.25 Bitcoin will be available for mining
  • Final Bitcoin will be mined around year 2140

Summary Statistics

Metric Value
First Block Reward 50 BTC
Current Block Reward 3.125 BTC (as of 2024)
Total Halvings Until ~0 33
Years to Mine All Bitcoin ~128.0 years
Bitcoin Mined in First 4 Years 10,500,000 BTC (50% of total)
Bitcoin After 10 Halvings 20,979,492 BTC (99.80% of cap)
Estimated Final Supply 20,999,999.9769 BTC

The Mathematics

The total supply follows a geometric series:

\[ \text{Total Supply} = \sum_{n=0}^{64} 210{,}000 \times \frac{50}{2^n} \]

Session Information

Click to view session information
-----
numpy               2.3.4
pandas              2.3.3
plotly              6.4.0
session_info        v1.0.1
-----
Click to view modules imported as dependencies
anyio                       NA
appnope                     0.1.4
arrow                       1.4.0
asttokens                   NA
attr                        25.4.0
attrs                       25.4.0
babel                       2.17.0
certifi                     2025.11.12
charset_normalizer          3.4.4
comm                        0.2.3
cython_runtime              NA
dateutil                    2.9.0.post0
debugpy                     1.8.17
decorator                   5.2.1
executing                   2.2.1
fastjsonschema              NA
fqdn                        NA
idna                        3.11
ipykernel                   7.1.0
isoduration                 NA
jedi                        0.19.2
jinja2                      3.1.6
json5                       0.12.1
jsonpointer                 3.0.0
jsonschema                  4.25.1
jsonschema_specifications   NA
jupyter_events              0.12.0
jupyter_server              2.17.0
jupyterlab_server           2.28.0
lark                        1.3.1
markupsafe                  3.0.3
narwhals                    2.12.0
nbformat                    5.10.4
packaging                   25.0
parso                       0.8.5
platformdirs                4.5.0
prometheus_client           NA
prompt_toolkit              3.0.52
psutil                      7.1.3
pure_eval                   0.2.3
pydev_ipython               NA
pydevconsole                NA
pydevd                      3.2.3
pydevd_file_utils           NA
pydevd_plugins              NA
pydevd_tracing              NA
pygments                    2.19.2
pythonjsonlogger            NA
pytz                        2025.2
referencing                 NA
requests                    2.32.5
rfc3339_validator           0.1.4
rfc3986_validator           0.1.1
rfc3987_syntax              NA
rpds                        NA
send2trash                  NA
six                         1.17.0
sniffio                     1.3.1
stack_data                  0.6.3
tornado                     6.5.2
traitlets                   5.14.3
typing_extensions           NA
uri_template                NA
urllib3                     2.5.0
wcwidth                     0.2.14
webcolors                   NA
websocket                   1.9.0
yaml                        6.0.3
zmq                         27.1.0
-----
IPython             9.7.0
jupyter_client      8.6.3
jupyter_core        5.9.1
jupyterlab          4.4.10
notebook            7.4.7
-----
Python 3.14.0 (v3.14.0:ebf955df7a8, Oct  7 2025, 08:20:14) [Clang 16.0.0 (clang-1600.0.26.6)]
macOS-15.3.1-arm64-arm-64bit-Mach-O
-----
Session information updated at 2026-01-16 13:34